Skip to content

Conversation

bavshin-f5
Copy link
Member

@bavshin-f5 bavshin-f5 commented Aug 11, 2025

RFC8555 § 7.3.4 implementation.

The keys are base64url encoded because that's how most of the issuers provide the keys.

Tested with:

  • Pebble
  • ZeroSSL
  • Google Trust Services

Fixes #6

@bavshin-f5 bavshin-f5 force-pushed the main branch 2 times, most recently from 30a0562 to fda230c Compare August 12, 2025 16:12
@bavshin-f5 bavshin-f5 force-pushed the bavshin/external-account branch from 9bb8643 to 9cd7190 Compare August 12, 2025 17:46
@bavshin-f5 bavshin-f5 force-pushed the bavshin/external-account branch from 9cd7190 to 52646d0 Compare August 19, 2025 21:41
@bavshin-f5 bavshin-f5 marked this pull request as ready for review August 19, 2025 21:44
@bavshin-f5 bavshin-f5 requested a review from Copilot August 19, 2025 21:44
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements external account binding (EAB) support for the ACME client module as specified in RFC8555 § 7.3.4. External account binding allows ACME clients to associate their account with an external account managed by the CA.

  • Added support for HMAC-based signing for external account binding
  • Introduced configuration directive external_account_key to specify EAB credentials
  • Enhanced test infrastructure with feature detection and version checking

Reviewed Changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
t/lib/Test/Nginx/ACME.pm Enhanced test daemon with configuration merging, feature detection, and version checking
t/acme_external_account.t New test case for external account binding functionality
t/acme_*.t Removed unused imports and simplified configuration
src/util.rs Added utility functions for file reading and string manipulation
src/jws.rs Added HMAC key support and made nonce optional for EAB signing
src/conf/issuer.rs Added external account key configuration structure
src/conf.rs Added configuration parser for external_account_key directive
src/acme/types.rs Added external_account_binding field to AccountRequest
src/acme.rs Implemented EAB signature generation in account creation
README.md Updated documentation to reflect EAB support

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@bavshin-f5 bavshin-f5 force-pushed the bavshin/external-account branch from 52646d0 to c9bfd5d Compare August 19, 2025 23:06
@bavshin-f5 bavshin-f5 requested review from ensh63 and xeioex August 19, 2025 23:08
@bavshin-f5 bavshin-f5 force-pushed the bavshin/external-account branch from c9bfd5d to 9cf9c9e Compare August 20, 2025 00:41
Copy link
Contributor

@ensh63 ensh63 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good for me.

Copy link
Contributor

@xeioex xeioex left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

@bavshin-f5 bavshin-f5 force-pushed the bavshin/external-account branch from d19c6a7 to 68754de Compare August 20, 2025 21:58
@bavshin-f5 bavshin-f5 merged commit a747fd5 into main Aug 20, 2025
14 checks passed
@bavshin-f5 bavshin-f5 deleted the bavshin/external-account branch August 20, 2025 22:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[RFC8555] External Account Binding

3 participants